package com.zhdl.modules.prefiresys.web.response;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 首页防区信息
 */
@Data
public class AreaRealData {

    /**
     * 探测器地址，1-255
     */
    private short detectorAddr = 1;

    /**
     * 探测器设备ID,UUID
     */
    private String detectorId;

    /**
     * 防区编号 1-4
     */
    private byte areaNo = 1;

    /**
     * 防区名称
     */
    private String areaName = "";

    /**
     * 0x40 U8 1防区 报警状态 0 正常；1 预警；2 三级报警；3 二级报警；4 一级报警；5 报警保持；
     */
    private byte status = 0;

    /**
     * 0x1A U8 微粒子检测模块状态标识 0 正常；1 异常
     */
    private String particleModuleStatus = "正常";

    /**
     * 0x1A U8 烟雾检测模块状态标识  0 正常；1 异常
     */
    private String smokeModuleStatus = "正常";

    /**
     * 0x1B 静音报警声音 true为静音；false为取消静音
     */
    private boolean muteAlarmSound;

    /**
     * 颗粒物浓度
     */
    private float particlePercent;

    /**
     * 烟雾浓度
     */
    private float smokePercent;

    // region 以下为探测器设备的信息，暂时放在这里，方便前端显示，后期可优化

    /**
     * 0x21 U16 供电电压 单位 V，传输按实际值的 100 倍(例如电压 9.51V，传输数值为 951，在屏幕上应显示为 9.51，下同
     */
    private float serviceVoltage;

    /**
     * 0x26 S16 环境温度 -40~125 单位℃，实际值的 100 倍
     */
    private float envTemperature;

    /**
     * 0x27 U16 环境湿度 0~100 单位%RH ，实际值的 100 倍
     */
    private float envHumidity;

    /**
     * 0x28 U16 真空压力 0~50 单位 kPa，实际值的 100 倍
     */
    private float vacuumPressure;

    /**
     * 0x29 U16 PD探测电压 0~5 单位 V，实际值的 100 倍
     */
    private float detectPressure;

    /**
     * 0x22 U8 采样管 1 流速
     */
    private short samplingFlow1;

    /**
     * 0x19 U16 检测单元状态 bit0-主电源供电状态 bit1-检测试剂状态（异常描述为“液位低”）
     */
    private List<String> checkUnitStatus = new ArrayList<>(List.of("正常"));

    /**
     * 0x17 连续运行时间
     */
    private String contRunTime = "";

    /**
     * 设备连接状态
     */
    private boolean onlineStatus = false;

    // endregion 以下为探测器设备的信息，暂时放在这里，方便前端显示，后期可优化

}
